<?php

namespace sffi\WechatRobotPlug\base;

interface SendEventInterface
{
    /**
     * 发送文本消息
     * @param string $msg
     * @return mixed
     */
    public function sendTextMsg(array $data, string $msg);

    /**
     * 发送群聊艾特消息
     * @param $at
     * @param string $msg
     * @return mixed
     */
    public function sendAtMsg(array $data, $at, string $msg);

    /**
     * 发送艾特全体成员的消息
     * @param string $msg 消息内容
     */
    public function sendAtAllMsg(array $data, string $msg);

    /**
     * 发送图片消息
     * @param string $path
     * @return mixed
     */
    public function sendImageMsg(array $data, string $path);

    /**
     * 发送名片消息
     * @param $friend
     * @return mixed
     */
    public function sendCardMsg(array $data, $friend);

    /**
     * 发送消息记录
     * @param $xml
     * @return mixed
     */
    public function sendMessageRecord(array $data, $xml);

    /**
     * 发送分享链接
     * @param array $data
     * @param string $title
     * @param string $desc
     * @param string $url
     * @param string $imagePath
     * @param string $icon
     * @return mixed
     */
    public function sendLinkMsg(array $data, string $title, string $desc, string $url, string $imagePath = '', string $icon = '');

    /**
     * 发送音乐消息
     * @param string $title
     * @param string $desc
     * @param string $url
     * @param string $mp3url
     * @param string $imageUrl
     * @return mixed
     */
    public function sendMusicMsg(array $data, string $title, string $desc, string $url, string $mp3url, string $imageUrl);

    /**
     * 发送小程序消息
     * @param $xml
     * @return mixed
     */
    public function sendMiniMsg(array $data, $xml);

    /**
     * 发送文件
     * @param string $file
     * @return mixed
     */
    public function sendFileMsg(array $data, string $file);

    /**
     * 发送视频
     * @param string $video
     * @return mixed
     */
    public function sendVideoMsg(array $data, string $video);


    /**
     * 发送动态表情消息
     * @param string $gifPath 文件路径
     * @return mixed
     */
    public function sendEmojiMsg(array $data, string $gifPath);

    /**
     * 撤回消息
     * @param string $msgId 消息ID
     */
    public function sendRevokeMsg(array $data, string $msgId);

    function send($data);
}